package br.com.redefranciscanas.wiki.view;

import java.util.Date;

import javax.sound.midi.MidiDevice.Info;

import org.apache.log4j.Logger;
import org.primefaces.event.FileUploadEvent;

import br.com.redefranciscanas.wiki.domain.Funcionario;
import br.com.redefranciscanas.wiki.domain.Topico;
import br.com.redefranciscanas.wiki.enumerado.Categoria;
import br.com.redefranciscanas.wiki.enumerado.NvlAcesso;
import br.com.redefranciscanas.wiki.persistence.FuncionarioDao;

@SuppressWarnings("unused")
public class PageControl { 

	private Funcionario funcionario;
	private FuncionarioDao fdao;
	private Topico topico;
	private NvlAcesso nvlAcesso;
	private NvlAcesso[] nvlsAcesso;
	private Categoria[] categorias;
	private String login;
	private String senha;
	private String pagina;
	private String message;
	private String titulo;
	private String resumo;
	private String caminho;
	private String categoria;
	private static Logger log = Logger.getLogger(PageControl.class);

	public PageControl() {
		fdao = new FuncionarioDao();
		funcionario = null;
		message = "";
		nvlsAcesso = NvlAcesso.values();
		categorias = Categoria.values();
		pagina = "welcome";
		limpa();
	}

	public void limpa() {
		funcionario = null;
		login = null;
		senha = null;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Topico getTopico() {
		return topico;
	}

	public NvlAcesso getNvlAcesso() {
		return nvlAcesso;
	}

	public NvlAcesso[] getNvlsAcesso() {
		return nvlsAcesso;
	}

	public Categoria[] getCategorias() {
		return categorias;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getResumo() {
		return resumo;
	}

	public void setResumo(String resumo) {
		this.resumo = resumo;
	}

	public String getCaminho() {
		return caminho;
	}

	public void setCaminho(String caminho) {
		this.caminho = caminho;
	}

	public void setCategoria(String categoria) {
		this.categoria = categoria;
	}

	public String getCategoria() {
		return categoria;
	}

	public String getPagina() {
		return pagina;
	}

	public void setPagina(String pagina) {
		log.info("pegando a pagina: " + pagina);
		this.pagina = pagina;
	}

	public String getMessage() {
		return message;
	}

	public String logar() {
		funcionario = fdao.buscaFuncionarioPeloNome(login);
		if (funcionario != null) {
			if (funcionario.getNomeUsuario().equals(login)
					&& funcionario.getSenha().equals(senha)) {
				log.info("Fazendo login..." + login);
				log.info("Logando com: " + funcionario.getNome());
				log.info("login com sucesso");
				return "mainpagewiki";
			} else {
				message = "Usuário e Senha não conferem!";
				limpa();

				return "erro";
			}
		} else {
			message = "Usuário não cadastrado, por favor cadastre-se, "
					+ "caso você já é cadastrado, "
					+ "entre em contato com o SUPORTE.";
			limpa();
			return "erro";
		}
	}

	public String logoff() {
		System.out.println("Usuário " + funcionario.getNome()
				+ " fazendo logoff.");
		limpa();
		pagina = "welcome";
		return "logoff";
	}

}
